package oj;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class Num387 {
    public int firstUniqChar(String s) {
        Map<Character,Integer> map=new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            map.put(s.charAt(i),map.getOrDefault(s.charAt(i),0)+1);
        }
        Set<Character> set = new HashSet<>();
        for (Map.Entry<Character,Integer> entry: map.entrySet()){
            if(entry.getValue()==1){
                set.add(entry.getKey());
            }
        }

        int min=Integer.MAX_VALUE;
        for (int i = 0; i < s.length(); i++) {
            if(set.contains(s.charAt(i))){
                min=Math.min(min,i);
            }
        }
        if(min>s.length()){
            return -1;
        }else {
            return min;
        }
    }
}
